Method of controlling access to network resources referenced in electronic mail messages

ABSTRACT

A method and apparatus for controlling access to network resources referenced in electronic mail messages comprises the computer-implemented steps of receiving an electronic mail message that comprises one or more hyperlinks; modifying the one or more hyperlinks by associating an identifier value with each of the one or more hyperlinks; receiving a request to access a specified hyperlink among the one or more hyperlinks; determining, based on the identifier value that is associated with the specified hyperlink, a particular action among a plurality of allowed actions; and issuing a network request to access the specified hyperlink only when the particular action is allowing user access to the specified hyperlink.

FIELD OF THE INVENTION

The present invention generally relates to network data communications.The invention relates more specifically to techniques for controllingaccess to potentially harmful server resources, such as Web sites thatimplement “phishing” attacks.

BACKGROUND

The approaches described in this section could be pursued, but are notnecessarily approaches that have been previously conceived or pursued.Therefore, unless otherwise indicated herein, the approaches describedin this section are not prior art to the claims in this application andare not admitted to be prior art by inclusion in this section.

Some network resources such as Web sites are configured by malicious ordishonest persons to host harmful computer program code, or to containforms or applications that seek to collect personal identifyinginformation or financial account information for unauthorized purposes.The persons who control such sites often seek to entrap unsuspectingusers into giving up personal financial information by sendingelectronic mail (e-mail) messages to the users that appear to originatefrom legitimate entities, and contain hyperlinks to the malicious ordishonest sites. Network security analysts use the term “phishing” todescribe such approaches.

Other e-mail senders dispatch to enterprise end users messagescontaining hyperlinks to Web sites or other network resources that theend users are not allowed to access according to enterprise policy. Suchsites may include pornographic material, streaming audio or videocontent that consumes excessive enterprise network bandwidth, or othermaterial for which the enterprise prefers to control access. Themessages may be unsolicited, but need not be.

Hypertext transfer protocol (HTTP) and simple mail transfer protocol(SMTP) are defined in Internet Engineering Task Force (IETF) Request forComments (RFC) 2616 and RFC 2821. The reader of this document ispresumed to be familiar with RFC 2616, RFC 2821, and the structure of anHTTP request, a URL, a hyperlink, and an HTTP proxy. Generally, an HTTPrequest is an electronic message that conforms to HTTP and that is sentfrom a client or server to another server to request a particularelectronic document, application, or other server resource. An HTTPrequest comprises a request line, one or more optional headers, and anoptional body. A URL identifies a particular electronic document,application or other server resource and may be encapsulated in an HTTPrequest. A hyperlink is a representation, in an electronic document suchas an HTML document, of a URL. Selecting a hyperlink invokes an HTTPelement at a client and causes the client to send an HTTP requestcontaining the URL represented in the hyperlink to an HTTP server at,and identified by, a domain portion of the URL.

In conventional operation of hypertext transfer protocol (HTTP),electronic documents prepared using hypertext markup language (HTML) maycontain hyperlinks to other documents or network resources. A user viewsthe HTML documents using a browser, such as Firefox, Netscape Navigator,or Microsoft Internet Explorer. When a user selects a hyperlink for anetwork resource in an HTML document, the browser issues an HTTP GET orPOST request to the HTTP server that hosts the linked resource. Beforedispatching the request, the browser places the uniform resource locator(URL) of the current HTML document in a “Referer” header in an HTTPrequest. The receiving HTTP server can use the Referer value to learnhow the user reached the HTTP server. If the browser is configured tosend HTTP requests to an HTTP proxy server rather than directly to theserver that hosts the linked resource, then the HTTP proxy server canexamine the contents of the Referer field to determine whether the usershould be allowed to obtain the requested network resource.

A browser may display objects other than HTML documents. Browsers mayrequest URLs for reasons other than in response to a user selecting ahyperlink in an HTML document. A browser does not always need to beexplicitly configured to communicate with a proxy; some proxies can beconfigured transparently.

However, when a hyperlink or URL appears in an e-mail message, which auser has received legitimately or as part of a phishing attack,selecting the hyperlink does not result in placing information in theReferer field. Because the hyperlink or URL is in an e-mail message,which is not an HTML document or Web site, no URL identifying the e-mailmessage can be formed and placed in the Referer field. As a result, incurrent practice there is no way to control access to hyperlinks or URLsthat appear in an e-mail based on the origin of that e-mail.Consequently, e-mail systems are vulnerable to phishing attacks andother problems.

Email messages that are displayed by browsers in so-called “webmail”clients present a special case of the foregoing general description. Ina webmail client, an email message is displayed as part of an HTMLdocument or HTML fragment. When the user selects a hyperlink in awebmail client, the browser sends a referer header, but the browser doesnot include information from the sender about the sender of the email.Instead, the browser typically places in the referer header a URL thatis derived from the implementation of the webmail client.

Based on the foregoing, there is a clear need in the data processingfield for a method that permits controlling access to Web sites andother network resources that are referenced within e-mail messages usingURLs or hyperlinks.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings and in whichlike reference numerals refer to similar elements and in which:

FIG. 1 is a block diagram that illustrates an example networkarrangement that may be used to implement an embodiment;

FIG. 2 is a flow diagram that illustrates a high level overview of oneembodiment of a method for controlling access to network resourcesreferenced in electronic mail messages;

FIG. 3 is a flow diagram that illustrates a more detailed view ofanother embodiment of a method for controlling access to networkresources referenced in electronic mail messages;

FIG. 4 is a block diagram that illustrates a computer system upon whichan embodiment may be implemented.

DETAILED DESCRIPTION

A method and apparatus for controlling access to network resourcesreferenced in electronic mail messages are described. In the followingdescription, for the purposes of explanation, numerous specific detailsare set forth in order to provide a thorough understanding of thepresent invention. It will be apparent, however, to one skilled in theart that the present invention may be practiced without these specificdetails. In other instances, well-known structures and devices are shownin block diagram form in order to avoid unnecessarily obscuring thepresent invention.

Embodiments are described herein according to the following outline:

1.0 General Overview

2.0 Structural and Functional Overview

3.0 Implementation Mechanisms—Hardware Overview

4.0 Extensions and Alternatives

1.0 General Overview

The needs identified in the foregoing Background, and other needs andobjects that will become apparent for the following description, areachieved in the present invention, which comprises, in one aspect, amethod comprising the computer-implemented steps of: receiving anelectronic mail message that comprises one or more hyperlinks; modifyingthe one or more hyperlinks by associating an identifier value with eachof the one or more hyperlinks; receiving a request to access a specifiedhyperlink among the one or more hyperlinks; determining, based on theidentifier value that is associated with the specified hyperlink, aparticular action among a plurality of allowed actions; and issuing anetwork request to access the specified hyperlink only when theparticular action is allowing user access to the specified hyperlink.

In one feature of this aspect, the plurality of allowed actions includeblocking user access to the specified hyperlink. In another feature, theidentifier value is removed from the specified hyperlink before issuingthe network request. In still another feature, the request to access thespecified hyperlink is received at an HTTP proxy, and the electronicmail message is received at an SMTP mail transfer agent that is coupledto the HTTP proxy.

In various features, the identifier value comprises a network address ofa sender of the electronic mail message, or a message digest of theelectronic mail message, or a message identifier that a sending mailtransfer agent assigns to the electronic mail message.

In another aspect, the invention provides a method of controlling accessto server resources, comprising the computer-implemented steps ofreceiving an electronic mail message that comprises one or morehyperlinks; generating an identifier value for each of the one or morehyperlinks, wherein the identifier value comprises any one of: a networkaddress of a sender of the electronic mail message; a message digest ofthe electronic mail message; and a message identifier that a sendingmail transfer agent assigns to the electronic mail message; modifyingthe one or more hyperlinks by associating respective identifier valueswith each of the one or more hyperlinks; receiving a request to access aspecified hyperlink among the one or more hyperlinks; determining, basedon the identifier value that is associated with the specified hyperlink,a particular action among a plurality of allowed actions, wherein theplurality of allowed actions include blocking user access to thespecified hyperlink; and removing the identifier value from thespecified hyperlink and issuing a network request to access thespecified hyperlink only when the particular action is allowing useraccess to the specified hyperlink.

In yet another aspect, the invention provides a data processingapparatus, comprising in combination one or more processors; an HTTPproxy server hosted on one or more of the one or more processors; anSMTP mail transfer agent that is coupled to the HTTP proxy server;electronic mail processing logic coupled to the HTTP proxy server and tothe SMTP mail transfer agent, wherein the electronic mail processinglogic comprises one or more sequences of instructions which, whenexecuted by the one or more processors, cause the one or more processorsto perform the steps of receiving an electronic mail message thatcomprises one or more hyperlinks; modifying the one or more hyperlinksby associating an identifier value with each of the one or morehyperlinks; receiving a request to access a specified hyperlink amongthe one or more hyperlinks; determining, based on the identifier valuethat is associated with the specified hyperlink, a particular actionamong a plurality of allowed actions; and issuing a network request toaccess the specified hyperlink only when the particular action isallowing user access to the specified hyperlink.

In other aspects, the invention encompasses other computer apparatus anda computer-readable medium configured to carry out the foregoing steps.

2.0 Structural and Functional Overview

FIG. 1 is a block diagram of an example network arrangement that may beused to implement an embodiment.

A user system 102 hosts an e-mail client 104 and a browser 106, and iscoupled to a local area network (LAN) 108. E-mail client 104 is anHTML-enabled e-mail reading and sending program, for example, MicrosoftOutlook 2003. Browser 106 can render HTML documents and communicate withnetwork resources using HTTP. For example, browser 106 comprisesFirefox, Netscape Navigator, Microsoft Internet Explorer, etc.

For purposes of illustrating a clear example, FIG. 1 illustrates LAN 108coupled to one user system 102; however, in other embodiments any numberof user systems is coupled to the LAN.

LAN 108 is coupled directly or indirectly through one or moreinternetworks, or Internet 110, to a mail sender 112 and a networkresource such as Web server 114. Mail sender 112 generally representsany entity that sends e-mail messages directed to user system 102 or auser of the user system; the mail sender may be a legitimate end user, alegitimate bulk commercial mailing site, or a malicious party. Webserver 114 holds one or more network resources such as Web sites, HTMLdocuments, HTTP applications, etc. The Web server 114 may be owned,operated, or affiliated with mail sender 112, or may be independent.

A network address translation (NAT) or firewall device 109 may bedeployed at an external edge of LAN 108 to control the flow of packetsto or from the LAN.

A messaging apparatus 116 is coupled to LAN 108 and comprises incombination a mail server 118, HTTP proxy 120, and mail URL processinglogic 122. In one embodiment, mail server 118 comprises a simple mailtransfer protocol (SMTP) mail transfer agent that can send e-mailmessages through LAN 108 to other local users and through Internet 110to remote users, and can receive messages from the LAN or Internet andperform message-processing functions.

HTTP proxy 120 implements HTTP and can send and receive HTTP requestsand responses on behalf of user system 102 and other users systems thatare coupled to LAN 108. In an embodiment, the browser 106 of user system102 is configured to use an HTTP proxy rather than sending and receivingHTTP requests and responses directly, and is configured with a networkaddress of HTTP proxy 120, as indicated by dashed line 130. Suchconfiguration may be an explicit configuration, or HTTP proxy 120 may beconfigured as a transparent proxy. Thus, when a user of system 102selects a hyperlink referring to Web server 114 and contained in an HTMLdocument that browser 106 is displaying, the browser generates an HTTPrequest directed to HTTP proxy 120 rather than to Web server 114.

Mail URL processing logic 122 comprises one or more computer programs,methods, processes, or other software elements that implement thefunctions that are described further herein, such as the functions ofFIG. 2.

In one embodiment, messaging apparatus 116 comprises any of the IronPortMessaging Gateway Appliances that are commercially available fromIronPort Systems, Inc., San Bruno, Calif., configured with applicationsoftware and/or operating system software that can perform the functionsdescribed herein.

FIG. 2 is a flow diagram that illustrates a high level overview of oneembodiment of a method for controlling access to network resourcesreferenced in electronic mail messages; FIG. 3 is a flow diagram thatillustrates a more detailed view of another embodiment of a method forcontrolling access to network resources referenced in electronic mailmessages. For purposes of illustrating a clear example, FIG. 2 and FIG.3 are now described with reference to the context of FIG. 1. However,the broad approach of FIG. 2 and FIG. 3 may be implemented in many othercontexts.

In step 202, an electronic mail message having hyperlinks is received.In this description, “hyperlink” and “URL” refer to any element of amessage that describes a network resource or location. For example, mailsender 112 sends a message through Internet 110 directed to a useraccount on mail server 118 that is associated with a user of system 102.The messaging apparatus 116 receives the message at mail server 118,which buffers the message and signals the mail URL processing logic 122that a new message has arrived. Assume, for purposes of illustrating aclear example, that the body of the received message contains the textshown in Table 1.

TABLE 1—EXAMPLE RECEIVED MESSAGE

-   -   To provide you with the best possible service, we at Online        Payment Services need you to verify your account information        with us. If you do not verify your account information, then we        will disable your account. To provide your account details,        please click here: http://onlinepayment.phishingscam.com Thank        you!

Despite the appearance of the message, the message is not authorized byOnline Payment Services, and the URL in the message(http://onlinepayment.phishingscam.com) accesses a server that collectsuser account data for fraudulent or malicious purposes.

At step 204, the hyperlinks in the received message are modified byassociating an identifier value with each hyperlink. For example, mailURL processing logic 122 creates a copy of the received message, and inplace of the original URL in the message, the following is written intothe copy: http://onlinepayment.phishingscam.com/?_IronPort-URLID=1234567

In this example, “1234567” is the identifier value, which is associatedwith the URL by placing the identifier value in a parameter field named_IronPort-URLID. In alternate embodiments, any other field name may beused. Further, identifier values may comprise any sequence of symbolsand need not comprise numeric identifiers.

The identifier value represents information about the origin of thereceived message containing a URL. For example, the identifier value maybe a network address, such as an IP address, of a sender of the message.Alternatively, the identifier value may be a hash value produced using aone-way hash function based on the sender's network address, or based onthe content of the message body, or a combination thereof. Theparticular process used to generate the identifier value may varydepending on what quantity or type of information is deemed useful formail URL processing logic to determine the origins of a requested URL ina message.

The message copy, not the original message, is then released from thebuffer of mail server 118 and associated with a user account of therecipient. Thus, in the approach herein, a user account never receivesthe originally received message, but always receives a copy of themessage in which all URLs have been rewritten with associatedidentifiers.

In step 206, a request is received to access a specified hyperlink. Forexample, a user of system 102 activates email client 104, reads thereceived message copy, and clicks on the rewritten URL given above. Inresponse, email client 104 invokes browser 106, for example, using anAPI of the browser or a dynamic linked library (DLL) associated with thebrowser. When invoking the browser 106, email client 104 passes a copyof the selected rewritten URL to the browser.

Because the browser 106 has been configured to use HTTP proxy 120 foraccessing URLs, the browser passes the rewritten URL to the proxy andrequests the proxy to access the URL on behalf of the browser. Mail URLprocessing logic 122 receives the rewritten URL from the HTTP proxy 106.In effect, mail URL processing logic 122 intercepts the user'sinvocation or a URL, which allows the mail URL processing logic toexamine the URL and determine whether to permit the user to access theURL.

At step 208, based on the identifier value of the specified hyperlink,an allowed action is determined. For example, mail URL processing logic122 obtains the identifier value associated with the URL that the userselected, and determines whether to allow the user to access the URLbased on the identifier. In one embodiment, messaging apparatus 116maintains a table or database 120 that associates message senderidentifiers with allowed actions. Alternatively, messaging apparatus maymaintain a first table or database 122 that associates message senderidentifiers with sender reputation values, and a second table ordatabase 124 that associates sender reputation values with allowedactions. Allowed actions may include accessing a URL, blocking access toa URL, blocking access to a URL and also issuing a warning message,allowing access to a URL conditionally (e.g., when user system 102passes a set of security posture validation tests).

Messaging apparatus 116 may maintain the tables or databases for usewith features, applications or functions other than mail URL processinglogic 122. Further, the tables or database may be maintained outsidemessaging apparatus 116, which may access the tables or database ofsender information through LAN 108 or Internet 110. As a specificexample, the database 120 of sender information may comprise theSenderBase service of IronPort Systems, Inc.

In these embodiments, step 208 involves mail URL invoking a method orfunction call of database 120 that requests the database to return anallowed action for a particular sender identifier value.

In step 210, a network request to access a specified hyperlink is issuedwhen the determined action is allowing user access to the specifiedhyperlink. For example, when mail URL processing logic determines atstep 208 that the sender of the message has a good reputation, or thatthe user may access the requested URL, then HTTP proxy 120 issues anHTTP GET request for the requested URL. The HTTP GET request passesthrough LAN 108 and Internet 110 to a web server 114 associated with adomain specified in the URL, and the web server provides an HTTPresponse. Proxy 120 receives the HTTP response and forwards the responseto browser 106, which acts upon the response. For example, the responsemay contain an HTML document, which browser 106 displays.

Referring now to FIG. 3, a more detailed view of the approach hereincomprises receiving, at step 302, an electronic mail message having oneor more hyperlinks, from a mail sender, and directed to a specifiedrecipient. For example, mail server 118 receives an e-mail message thatmail sender 112 has sent to a user account associated with a user ofsystem 102. In step 304, at the mail server 118, before the message isdelivered to a recipient account, the hyperlinks are modified byassociating an identifier value with each hyperlink, where theidentifier value indicates sender information. At step 306, the modifiedmessage is provided to the user account.

In step 308, after opening and displaying the received modified message,the user clicks on a particular hyperlink in the message. In an attemptto access the hyperlink and display or access a network resourceassociated with the hyperlink, email client 104 invokes browser 106, andthe browser invokes HTTP proxy 120. The HTTP proxy 120 passes, to mailURL processing logic 122, the hyperlink specified in the browserinvocation; thus, at step 310, a user request to access a specifiedhyperlink is received at the mail URL processing logic. In response, instep 312, the identifier value is looked up in a sender informationbase, such as sender database 120.

At step 314, an allowed action is determined, based on the identifiervalue of the specified hyperlink and information about the senderobtained from the sender information base. At step 316, if the actiondetermined at step 314 is allowing user access to the specifiedhyperlink, then the mail URL processing logic 122 instructs or allowsthe HTTP proxy 120 to issue a network request to access the specifiedhyperlink.

The approach herein uniquely ties together SMTP mail information andHTTP information, which are normally unrelated. The approach can relatean incoming email to a corresponding HTTP request that arrives at alater time through a different server. Because the approach hereincontrols both an incoming mail stream and an HTTP proxy, the system candetermine the origin of a message and determine whether to allow HTTPaccess to embedded URLs based on the origin. The incoming mail servercan tag incoming URLs with a unique identifier, so that when a userclicks on a URL in an email, the HTTP proxy can extract the uniqueidentifier and know where the URL originated.

The approach provides the messaging apparatus with a second chance tostop threats embodied in email messages.

The approach herein also is useful in processing URLs that specifyprotocols other than HTTP. For example, the approach herein is usefulfor URLs that specify HTTP over TLS or SSL (HTTPS://URLs) if HTTP proxy120 (FIG. 1) is configured to terminate a TLS connection or SSLconnection to web server 114. The approach herein also is useful forother protocols that can be explicitly or transparently proxied.

3.0 Implementation Mechanisms—Hardware Overview

FIG. 4 is a block diagram that illustrates a computer system 400 uponwhich an embodiment of the invention may be implemented. The preferredembodiment is implemented using one or more computer programs running ona network element such as a router device. Thus, in this embodiment, thecomputer system 400 is a router.

Computer system 400 includes a bus 402 or other communication mechanismfor communicating information, and one or more processors (representedby processor 404) coupled with bus 402 for processing information.Computer system 400 also includes a main memory 406, such as a randomaccess memory (RAM), flash memory, or other dynamic storage device,coupled to bus 402 for storing information and instructions to beexecuted by processor 404. Main memory 406 also may be used for storingtemporary variables or other intermediate information during executionof instructions to be executed by processor 404. Computer system 400further includes a read only memory (ROM) 408 or other static storagedevice coupled to bus 402 for storing static information andinstructions for processor 404. A storage device 410, such as a magneticdisk, flash memory or optical disk, is provided and coupled to bus 402for storing information and instructions.

A communication interface 418 may be coupled to bus 402 forcommunicating information and command selections to processor 404.Interface 418 is a conventional serial interface such as an RS-232 orRS-422 interface. An external terminal 412 or other computer systemconnects to the computer system 400 and provides commands to it usingthe interface 414. Firmware or software running in the computer system400 provides a terminal interface or character-based command interfaceso that external commands can be given to the computer system.

A switching system 416 is coupled to bus 402 and has an input interface414 and an output interface 419 to one or more external networkelements. The external network elements may include a local network 422coupled to one or more hosts 424, or a global network such as Internet428 having one or more servers 430. The switching system 416 switchesinformation traffic arriving on input interface 414 to output interface419 according to pre-determined protocols and conventions that are wellknown. For example, switching system 416, in cooperation with processor404, can determine a destination of a packet of data arriving on inputinterface 414 and send it to the correct destination using outputinterface 419. The destinations may include host 424, server 430, otherend stations, or other routing and switching devices in local network422 or Internet 428.

The invention is related to the use of computer system 400 forcontrolling access to network resources referenced in electronic mailmessages. According to one embodiment of the invention, controllingaccess to network resources referenced in electronic mail messages isprovided by computer system 400 in response to processor 404 executingone or more sequences of one or more instructions contained in mainmemory 406. Such instructions may be read into main memory 406 fromanother computer-readable medium, such as storage device 410. Executionof the sequences of instructions contained in main memory 406 causesprocessor 404 to perform the process steps described herein. One or moreprocessors in a multi-processing arrangement may also be employed toexecute the sequences of instructions contained in main memory 406. Inalternative embodiments, hard-wired circuitry may be used in place of orin combination with software instructions to implement the invention.Thus, embodiments of the invention are not limited to any specificcombination of hardware circuitry and software.

The term “computer-readable medium” as used herein refers to any mediumthat participates in providing instructions to processor 404 forexecution. Such a medium may take many forms, including but not limitedto, non-volatile media, volatile media, and transmission media.Non-volatile media includes, for example, optical or magnetic disks,such as storage device 410. Volatile media includes dynamic memory, suchas main memory 406. Transmission media includes coaxial cables, copperwire and fiber optics, including the wires that comprise bus 402.Transmission media can also take the form of acoustic or light waves,such as those generated during radio wave and infrared datacommunications.

Common forms of computer-readable media include, for example, a floppydisk, a flexible disk, hard disk, magnetic tape, or any other magneticmedium, a CD-ROM, any other optical medium, punch cards, paper tape, anyother physical medium with patterns of holes, a RAM, a PROM, and EPROM,a FLASH-EPROM, any other memory chip or cartridge, a carrier wave asdescribed hereinafter, or any other medium from which a computer canread.

Various forms of computer readable media may be involved in carrying oneor more sequences of one or more instructions to processor 404 forexecution. For example, the instructions may initially be carried on amagnetic disk of a remote computer. The remote computer can load theinstructions into its dynamic memory and send the instructions over atelephone line using a modem. A modem local to computer system 400 canreceive the data on the telephone line and use an infrared transmitterto convert the data to an infrared signal. An infrared detector coupledto bus 402 can receive the data carried in the infrared signal and placethe data on bus 402. Bus 402 carries the data to main memory 406, fromwhich processor 404 retrieves and executes the instructions. Theinstructions received by main memory 406 may optionally be stored onstorage device 410 either before or after execution by processor 404.

Communication interface 418 also provides a two-way data communicationcoupling to a network link 420 that is connected to a local network 422.For example, communication interface 418 may be an integrated servicesdigital network (ISDN) card or a modem to provide a data communicationconnection to a corresponding type of telephone line. As anotherexample, communication interface 418 may be a local area network (LAN)card to provide a data communication connection to a compatible LAN.Wireless links may also be implemented. In any such implementation,communication interface 418 sends and receives electrical,electromagnetic or optical signals that carry digital data streamsrepresenting various types of information.

Network link 420 typically provides data communication through one ormore networks to other data devices. For example, network link 420 mayprovide a connection through local network 422 to a host computer 424 orto data equipment operated by an Internet Service Provider (ISP) 426.ISP 426 in turn provides data communication services through theworldwide packet data communication network now commonly referred to asthe “Internet” 428. Local network 422 and Internet 428 both useelectrical, electromagnetic or optical signals that carry digital datastreams. The signals through the various networks and the signals onnetwork link 420 and through communication interface 418, which carrythe digital data to and from computer system 400, are exemplary forms ofcarrier waves transporting the information.

Computer system 400 can send messages and receive data, includingprogram code, through the network(s), network link 420 and communicationinterface 418. In the Internet example, a server 430 might transmit arequested code for an application program through Internet 428, ISP 426,local network 422 and communication interface 418. In accordance withthe invention, one such downloaded application provides for controllingaccess to network resources referenced in electronic mail messages asdescribed herein.

The received code may be executed by processor 404 as it is received,and/or stored in storage device 410, or other non-volatile storage forlater execution. In this manner, computer system 400 may obtainapplication code in the form of a carrier wave.

4.0 Extensions and Alternatives

In the foregoing specification, the invention has been described withreference to specific embodiments thereof. It will, however, be evidentthat various modifications and changes may be made thereto withoutdeparting from the broader spirit and scope of the invention. Thespecification and drawings are, accordingly, to be regarded in anillustrative rather than a restrictive sense.

1. A method comprising the computer-implemented steps of: receiving,from a sender, an electronic mail message that is directed to arecipient and comprises one or more hyperlinks; modifying, at an e-mailserver, the one or more hyperlinks by appending an identifier valueafter each of the one or more hyperlinks, wherein the identifier valuecomprises information about the sender of the electronic mail message;receiving, from the recipient, a request to access a specified hyperlinkamong the one or more hyperlinks; determining, based on the identifiervalue that is appended after the specified hyperlink and the informationabout the sender, a particular action among a plurality of allowedactions; and issuing a network request to access the specified hyperlinkonly when the particular action is allowing the recipient to access tothe specified hyperlink.
 2. A method as recited in claim 1, wherein theplurality of allowed actions include blocking the recipient to access tothe specified hyperlink.
 3. A method as recited in claim 1, wherein theidentifier value is removed from the specified hyperlink before issuingthe network request.
 4. A method as recited in claim 1, wherein therequest to access the specified hyperlink is received at an HTTP proxy,and wherein the electronic mail message is received at an SMTP mailtransfer agent that is coupled to the HTTP proxy.
 5. A method as recitedin claim 1, wherein the identifier value comprises a network address ofa sender of the electronic mail message.
 6. A method as recited in claim1, wherein the identifier value comprises a message digest of theelectronic mail message.
 7. A method as recited in claim 1, wherein theidentifier value comprises a message identifier that a sending mailtransfer agent assigns to the electronic mail message.
 8. A method ofcontrolling access to server resources, comprising thecomputer-implemented steps of: receiving, from a sender, an electronicmail message that comprises one or more hyperlinks; generating anidentifier value, comprising information about the sender, for each ofthe one or more hyperlinks, wherein the identifier value comprises anyone of: a network address of a sender of the electronic mail message; amessage digest of the electronic mail message; and a message identifierthat a sending mail transfer agent assigns to the electronic mailmessage; modifying, at an e-mail server, the one or more hyperlinks byappending respective identifier values after each of the one or morehyperlinks; receiving, from the recipient, a request to access aspecified hyperlink among the one or more hyperlinks; determining, basedon the identifier value that is appended after the specified hyperlinkand the information about the sender, a particular action among aplurality of allowed actions, wherein the plurality of allowed actionsinclude blocking the recipient to access to the specified hyperlink; andremoving the identifier value from the specified hyperlink and issuing anetwork request to access the specified hyperlink only when theparticular action is allowing the recipient to access to the specifiedhyperlink.
 9. A method as recited in claim 8, wherein the request toaccess the specified hyperlink is received at an HTTP proxy, and whereinthe electronic mail message is received at an SMTP mail transfer agentthat is coupled to the HTTP proxy.
 10. A data processing apparatus,comprising in combination: one or more processors; an HTTP proxy serverhosted on one or more of the one or more processors; an SMTP mailtransfer agent that is coupled to the HTTP proxy server; electronic mailprocessing logic coupled to the HTTP proxy server and to the SMTP mailtransfer agent, wherein the electronic mail processing logic comprisesone or more sequences of instructions which, when executed by the one ormore processors, cause the one or more processors to perform the stepsof: receiving, from a sender, an electronic mail message that isdirected to a recipient and comprises one or more hyperlinks; modifyingthe one or more hyperlinks by appending an identifier value after eachof the one or more hyperlinks, wherein the identifier value comprisesinformation about the sender of the electronic mail message; receiving,from the recipient, a request to access a specified hyperlink among theone or more hyperlinks; determining, based on the identifier value thatis appended after the specified hyperlink and the information about thesender, a particular action among a plurality of allowed actions; andissuing a network request to access the specified hyperlink only whenthe particular action is allowing the recipient to access to thespecified hyperlink.
 11. An apparatus as recited in claim 10, whereinthe plurality of allowed actions include blocking user access to thespecified hyperlink.
 12. An apparatus as recited in claim 10, whereinthe identifier value is removed from the specified hyperlink beforeissuing the network request.
 13. An apparatus as recited in claim 10,wherein the identifier value comprises a network address of a sender ofthe electronic mail message.
 14. An apparatus as recited in claim 10,wherein the identifier value comprises a message digest of theelectronic mail message.
 15. An apparatus as recited in claim 10,wherein the identifier value comprises a message identifier that asending mail transfer agent assigns to the electronic mail message. 16.A data processing apparatus, comprising in combination: one or moreprocessors; an HTTP proxy server hosted on one or more of the one ormore processors; an SMTP mail transfer agent that is coupled to the HTTPproxy server; electronic mail processing logic coupled to the HTTP proxyserver and to the SMTP mail transfer agent, wherein the electronic mailprocessing logic comprises: means for receiving from a sender, anelectronic mail message that is directed to a recipient and comprisesone or more hyperlinks; means for modifying the one or more hyperlinksby appending an identifier value after each of the one or morehyperlinks, wherein the identifier value comprises information about thesender of the electronic mail message; means for receiving, from therecipient, a request to access a specified hyperlink among the one ormore hyperlinks; means for determining, based on the identifier valuethat is appended after the specified hyperlink and the information aboutthe sender, a particular action among a plurality of allowed actions;means for receiving a network request to access the specified hyperlinkonly when the particular action is allowing the recipient to access tothe specified hyperlink.
 17. An apparatus as recited in claim 16,wherein the plurality of allowed actions include blocking the recipientto access to the specified hyperlink.
 18. An apparatus as recited inclaim 16, wherein the identifier value is removed from the specifiedhyperlink before issuing the network request.
 19. An apparatus asrecited in claim 16, wherein the identifier value comprises a networkaddress of a sender of the electronic mail message.
 20. An apparatus asrecited in claim 16, wherein the identifier value comprises a messagedigest of the electronic mail message.
 21. An apparatus as recited inclaim 16, wherein the identifier value comprises a message identifierthat a sending mail transfer agent assigns to the electronic mailmessage.